// 进度条
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import common from '../assets/common'           // 引入公共函数
import store from '../utils/vuex/store'         // 引入vuex
import {constantRouterMap} from './routes'    // 引入路由数据

// 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location)
}

// 导出路由 在 main.js 里使用
const router = new VueRouter({
  mode: 'history',
  routes: constantRouterMap,
})

/**
 * 路由拦截
 * 权限验证
 */
router.beforeEach((to, from, next) => {
  // 进度条
  NProgress.start()

  if (to.name === 'login') {
    store.dispatch('setLogout')
  }

  next()
})

router.afterEach((to, from, next) => {
  // 进度条
  NProgress.done()
  // 更改标题
  common.title(to.meta.title)
  // 导航激活状态
  store.state.activeIndex = to.path
  // 跳转后返回顶部
  window.scrollTo(0, 0);
})

export default router


